The present invention relates to industrial control systems for controlling the position and/or velocity of electric motors in real time and in particular to an industrial controller allowing motion planning for such drives to be distributed to the drives from the central controller.
Industrial controllers are specialized computer systems used for the control of industrial processes or machinery, for example, in a factory environment. Generally, an industrial controller executes a stored control program that reads inputs from a variety of sensors associated with the controlled process and machine and, sensing the conditions of the process or machine and based on those inputs and a stored control program, calculates a set of outputs used to control actuators controlling the process or machine.
Industrial controllers differ from conventional computers in a number of ways. Physically, they are constructed to be substantially more robust against shock and damage and to better resist external contaminants and extreme environmental conditions than conventional computers. The processors and operating systems are optimized for real-time control and are programmed with languages designed to permit rapid development of control programs tailored to a constantly varying set of machine control or process control applications.
Generally, the controllers have a highly modular architecture, for example, that allows different numbers and types of input and output modules to be used to connect the controller to the process or machinery to be controlled. This modularity is facilitated through the use of special “control networks” suitable for highly reliable and available real-time communication. Such control networks (for example, ControlNet EtherNet/IP) differ from standard communication networks (e.g. Ethernet) by guaranteeing maximum communication delays by pre-scheduling the communication capacity of the network, and/or providing redundant communication capabilities for high-availability.
As part of their enhanced modularity, industrial controllers may employ I/O modules dedicated to a particular type electrical signal and function, for example, detecting input AC or DC signals or controlling output AC or DC signals. Each of these I/O modules may have a connector system allowing them to be installed in different combinations in a housing or rack along with other selected I/O modules to match the demands of the particular application. Multiple or individual I/O modules may be located at convenient control points near the controlled process or machine to communicate with a central industrial controller via the special control network.
One type of I/O module is a motor drive that may communicate with the industrial controller that is executing motion instructions, and may provide electrical signals to an electric motor adjusting the position or velocity of the motor according to the motion instructions. An example motion instruction, when executed by the controller, may initiate movement of the motor between the first and second position within predefined constraints of velocity and acceleration. The motion instruction command may be received by a motion planner in the industrial controller which, based on the motion instruction data, generates a motion profile precisely describing the motion of the motor on an instant by instant basis to control speed and acceleration changes, for example, to limit “jerk”, the first derivative of acceleration, the latter which may produce undesired wear on the motor and attached components.
Motion control in an industrial control environment is extremely demanding on the controller and the communication network because of the high rate of data transfer necessary to generate and convey the motion profiles for a multiplicity of high-speed motors. This problem is lessened to some extent by sending a coarse version of the motion profile data from the controller to the drive, the coarse version having a relatively slow coarse update rate with reduced bandwidth requirements. The drive may then interpolate a higher resolution version of the motion profile providing for smooth precise motion. Even with this approach, the coarse update rate must be high enough for these drives to meet performance requirements, so the controller's data processing capacity and control network bandwidth may be exhausted when handling a large number remote drives.
One solution to this problem is distributing the motion planning tasks to the drives themselves. This can be done by inserting into the control program special instructions that, when executed, cause the industrial controller to transmit the necessary commands to activate motion planning in the drives.